package org.example.scoresystem_backen.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * 学生选项DTO
 * 用于下拉选择框的学生数据
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class StudentOptionDTO {

    /**
     * 学生ID
     */
    private Integer id;

    /**
     * 学号
     */
    private String sno;

    /**
     * 学生姓名
     */
    private String name;

    /**
     * 班级ID
     */
    private Integer classId;

    /**
     * 班级名称
     */
    private String className;

    /**
     * 年级
     */
    private String grade;

    /**
     * 获取显示标签（学号-姓名）
     * @return 显示标签
     */
    public String getLabel() {
        return sno + "-" + name;
    }

    /**
     * 获取显示值（学生ID）
     * @return 显示值
     */
    public Integer getValue() {
        return id;
    }

    /**
     * 获取完整的班级显示名称
     * @return 完整的班级显示名称
     */
    public String getFullClassName() {
        if (grade != null && className != null) {
            return grade + "级" + className;
        }
        return className;
    }

    /**
     * 获取带班级信息的完整标签
     * @return 带班级信息的完整标签
     */
    public String getFullLabel() {
        String baseLabel = getLabel();
        String classInfo = getFullClassName();
        if (classInfo != null) {
            return baseLabel + "(" + classInfo + ")";
        }
        return baseLabel;
    }
}
